iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0

什麼是網路爬蟲 ?

網路爬蟲又稱網路蜘蛛,是一種自動瀏覽網頁的程式

我曾經把網路爬蟲和網路程式設計劃上等號

不過網路程式設計聽起來有點太廣泛 ? 好像在述說著整個 TCP 網路協定都屬於網路程式設計

後來我又換個說法,我改說 :「網路爬蟲應該是 HTTP 程式設計」,一切就合理多了

為什麼要寫網路爬蟲 ?

這個問題有點像是人們為什麼要寫程式 ?

程式設計師打造手機 APP 或者 Web 服務去提供使用者服務,或者打造優秀的工具去完成他們日常的工作

當然,寫程式還有一個最基本的需求,就是讓某些繁瑣的事項可以自動化

爬蟲當然也是一樣的道理,你提供使用者服務背後的功能可能就是以 requests 接上其他 API 實現的

爬蟲也可以用來打造優秀的工具,以筆者來說,我非常喜歡寫下載器類型的工具

一個爬蟲程式應該是什麼樣子 ?

以人類的視角來看,當我們今天打開 2022 iThome 鐵人賽的文章,我們的肉眼在乎的是字裡行間和圖片

爬蟲的視角其實會非常接近人類,只是我們改以程式碼的方式,去描述整個完整個過程

比方說,我們在瀏覽器輸入網址,可以看到精美的文章畫面,但如果我們用 curl 去請求網址,卻只能得到一坨 HTML

那是因為瀏覽器已經幫我們把 HTML 轉成人類適合閱讀的排版,而爬蟲需要自己解析 HTML 內容

到目前為止,假設你想撰寫一隻爬蟲,去爬取我的參賽文章,那麼首先你需要一個目錄作為進入點

目錄在肉眼看來,確實有 30 天份的文章,而爬蟲要做的第一件事情,就是請求目錄網址,然後解析 HTML,拿到 30 天份的文章連結

接下來會是一個迴圈,因為你必須走訪 30 天份的文章連結,並且請求它們,然後再次解析那些存在 HTML 裡面的文章內容和圖片

這就是一個爬蟲最基本該有的樣子,其實爬蟲程式和一般的程式沒什麼兩樣,都是在模仿人類的行為


上一篇
Day 1 前言
下一篇
Day 3 速成爬蟲的第一課 : 請求
系列文
mitmproxy 在網路爬蟲上的各種應用18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言